package com.xlh.pojo.courseTest;

import com.xlh.dto.courseTest.check.CheckRootDTO;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

public class ExperimentReport extends CheckRootDTO implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 实验报告id
     *
     * @mbg.generated
     */
    private Long id;

    /**
     * 章节id
     *
     * @mbg.generated
     */
    private Long chapterId;

    /**
     * 报告文件名
     *
     * @mbg.generated
     */
    private String reportFile;

    /**
     * 实验报告显示名称
     *
     * @mbg.generated
     */
    private String reportFileName;

    /**
     * pdf文件名称(归档)
     *
     * @mbg.generated
     */
    private String reportPdf;

    /**
     * 学生班级ID userClass
     *
     * @mbg.generated
     */
    private Long studentId;

    /**
     * 是否批阅
     *
     * @mbg.generated
     */
    private Boolean check;

    /**
     * 评分
     *
     * @mbg.generated
     */
    private Integer score;

    /**
     * 评语
     *
     * @mbg.generated
     */
    private String checkResult;

    /**
     * 创建时间
     *
     * @mbg.generated
     */
    private Date createTime;

    /**
     * 更新时间
     *
     * @mbg.generated
     */
    private Date updateTime;

    /**
     * 删除标识 0未删除 1已删除
     *
     * @mbg.generated
     */
    private Boolean delMark;

    /**
     * 在线实验报告提交状态:0-保存, 1-提交
     *
     * @mbg.generated
     */
    private Boolean onlineCommit;

    /**
     * doc文档实验报告提交状态:0-保存, 1-提交
     *
     * @mbg.generated
     */
    private Boolean docCommit;

    /**
     * 实验报告
     *
     * @mbg.generated
     */
    private String reportHtml;

    /**
     *
     */
    private String reportMd;


    /**
     * 学生ID
     */
    private Long userId;

    /**
     * 评价模板id
     */
    private Long templateId;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getChapterId() {
        return chapterId;
    }

    public void setChapterId(Long chapterId) {
        this.chapterId = chapterId;
    }

    public String getReportFile() {
        return reportFile;
    }

    public void setReportFile(String reportFile) {
        this.reportFile = reportFile;
    }

    public String getReportFileName() {
        return reportFileName;
    }

    public void setReportFileName(String reportFileName) {
        this.reportFileName = reportFileName;
    }

    public String getReportPdf() {
        return reportPdf;
    }

    public void setReportPdf(String reportPdf) {
        this.reportPdf = reportPdf;
    }

    public Long getStudentId() {
        return studentId;
    }

    public void setStudentId(Long studentId) {
        this.studentId = studentId;
    }

    public Boolean getCheck() {
        return check;
    }

    public void setCheck(Boolean check) {
        this.check = check;
    }

    public Integer getScore() {
        return score;
    }

    public void setScore(Integer score) {
        this.score = score;
    }

    public String getCheckResult() {
        return checkResult;
    }

    public void setCheckResult(String checkResult) {
        this.checkResult = checkResult;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Boolean getDelMark() {
        return delMark;
    }

    public void setDelMark(Boolean delMark) {
        this.delMark = delMark;
    }

    public Boolean getOnlineCommit() {
        return onlineCommit;
    }

    public void setOnlineCommit(Boolean onlineCommit) {
        this.onlineCommit = onlineCommit;
    }

    public Boolean getDocCommit() {
        return docCommit;
    }

    public void setDocCommit(Boolean docCommit) {
        this.docCommit = docCommit;
    }

    public String getReportHtml() {
        return reportHtml;
    }

    public void setReportHtml(String reportHtml) {
        this.reportHtml = reportHtml;
    }

    public String getReportMd() {
        return reportMd;
    }

    public void setReportMd(String reportMd) {
        this.reportMd = reportMd;
    }

    public Long getTemplateId() {
        return templateId;
    }

    public void setTemplateId(Long templateId) {
        this.templateId = templateId;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", chapterId=").append(chapterId);
        sb.append(", reportFile=").append(reportFile);
        sb.append(", reportFileName=").append(reportFileName);
        sb.append(", reportPdf=").append(reportPdf);
        sb.append(", studentId=").append(studentId);
        sb.append(", check=").append(check);
        sb.append(", score=").append(score);
        sb.append(", checkResult=").append(checkResult);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", delMark=").append(delMark);
        sb.append(", onlineCommit=").append(onlineCommit);
        sb.append(", docCommit=").append(docCommit);
        sb.append(", reportHtml=").append(reportHtml);
        sb.append(", reportMd=").append(reportMd);
        sb.append(", templateId=").append(templateId);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }


    @Override
    public boolean equals(Object o) {
        ExperimentReport report = (ExperimentReport) o;
        return chapterId.equals(report.chapterId) &&
                userId.equals(report.userId);
    }

    @Override
    public int hashCode() {
        return Objects.hash(chapterId, userId);
    }
}